home *** CD-ROM | disk | FTP | other *** search
- package symantec.itools.awt;
-
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Event;
- import java.awt.Graphics;
-
- public class HorizontalSlider extends Slider {
- protected static final int TICK_HEIGHT = 4;
- private static final int BORDER_X = 15;
- private static final int BORDER_Y = 10;
- private HorizontalSliderTick[] tick;
- private HorizontalSliderThumb thumb = new HorizontalSliderThumbBoth();
-
- public HorizontalSlider() {
- super.style = 2;
- super.min = 1;
- super.max = 10;
- super.freq = 1;
- super.prevPos = super.curPos = 0;
- super.width = 200;
- super.height = 50;
- super.showBorder = true;
- this.tick = null;
- }
-
- public void setTickStyle(int var1) {
- super.style = var1;
- switch (var1) {
- case 0:
- this.thumb = new HorizontalSliderThumbBot();
- break;
- case 1:
- this.thumb = new HorizontalSliderThumbTop();
- break;
- default:
- this.thumb = new HorizontalSliderThumbBoth();
- }
-
- this.do_reshape(super.width, super.height);
- ((Component)this).invalidate();
- }
-
- public int getTickStyle() {
- return super.style;
- }
-
- public boolean mouseDown(Event var1, int var2, int var3) {
- this.moveThumb(var2, true);
- return true;
- }
-
- public boolean mouseDrag(Event var1, int var2, int var3) {
- this.moveThumb(var2, false);
- return true;
- }
-
- private void do_reshape(int var1, int var2) {
- int var3 = 15;
- int var4 = 10;
- if (var1 < var3) {
- var3 = var1 / 4;
- }
-
- if (var2 < var4) {
- var4 = var2 / 4;
- }
-
- int var5 = var3;
- int var6 = var1 - var3;
- int var7 = var4;
- int var8 = var2 - var4;
- if (var3 == 0) {
- var5 = 1;
- }
-
- if (var6 == 0) {
- var6 = 1;
- }
-
- if (var4 == 0) {
- var7 = 1;
- }
-
- if (var8 == 0) {
- var8 = 1;
- }
-
- int var9 = (super.max - super.min) / super.freq + 1;
- this.tick = new HorizontalSliderTick[var9];
- int var10 = (var6 - var5) / (var9 - 1);
-
- for(int var12 = 0; var12 < var9; ++var12) {
- int var11 = var12 * var10;
- this.tick[var12] = new HorizontalSliderTick(var5 + var11, var7, var8, var11);
- }
-
- this.thumb.resize(var10 / 2, var8 - var7 - 4 - 1);
- }
-
- public void reshape(int var1, int var2, int var3, int var4) {
- super.width = var3;
- super.height = var4;
- this.do_reshape(var3, var4);
- super.reshape(var1, var2, var3, var4);
- }
-
- public void paint(Graphics var1) {
- if (this.tick.length != 0) {
- var1.clipRect(0, 0, super.width, super.height);
- this.thumb.draw(var1, this.tick[super.curPos]);
- if (super.prevPos != super.curPos) {
- this.thumb.clip(var1, this.tick[super.prevPos]);
- }
-
- var1.setColor(Color.lightGray);
- var1.fillRect(0, 0, super.width, super.height);
- var1.setColor(Color.black);
- int var6 = super.width - 1;
- int var7 = super.height - 1;
- if (super.showBorder) {
- var1.drawRect(0, 0, var6, var7);
- }
-
- for(int var9 = 0; var9 < this.tick.length; ++var9) {
- boolean var8 = var9 == 0 || var9 == this.tick.length - 1;
- HorizontalSliderTick var2 = this.tick[var9];
- if (super.style == 1 || super.style == 2) {
- var1.drawLine(var2.x, var2.y0 + (var8 ? 0 : 1), var2.x, var2.y0 + 4);
- }
-
- if (super.style == 0 || super.style == 2) {
- var1.drawLine(var2.x, var2.y1 - 4, var2.x, var2.y1 - (var8 ? 0 : 1));
- }
- }
-
- HorizontalSliderTick var10 = this.tick[0];
- int var5 = (var10.y1 + var10.y0) / 2;
- int var3 = var10.x - 5;
- int var4 = this.tick[this.tick.length - 1].x + 5;
- var1.drawLine(var3, var5, var4, var5);
- var1.setColor(Color.gray);
- var1.drawLine(var4 + 1, var5 - 1, var3 - 1, var5 - 1);
- var1.drawLine(var3 - 1, var5 - 1, var3 - 1, var5 + 1);
- var1.setColor(Color.lightGray);
- var1.drawLine(var3, var5 + 1, var4 + 1, var5 + 1);
- var1.drawLine(var4 + 1, var5 + 1, var4 + 1, var5);
- var1.setColor(Color.white);
- var1.drawLine(var3 - 1, var5 + 2, var4 + 2, var5 + 2);
- var1.drawLine(var4 + 2, var5 + 2, var4 + 2, var5 - 1);
- var1.clipRect(0, 0, super.width, super.height);
- this.thumb.draw(var1, this.tick[super.curPos]);
- super.prevPos = super.curPos;
- }
- }
-
- protected void doMove(int var1, boolean var2) {
- if (this.tick == null) {
- super.prevPos = super.curPos = var1;
- } else {
- if (var1 >= this.tick.length) {
- var1 = this.tick.length - 1;
- }
-
- if (var1 != super.curPos || var2) {
- super.prevPos = super.curPos;
- super.curPos = var1;
- this.paint(((Component)this).getGraphics());
- ((Component)this).postEvent(new Event(this, 1001, new Integer(super.curPos * super.freq + super.min)));
- }
-
- }
- }
-
- private void moveThumb(int var1, boolean var2) {
- if (this.tick.length > 1) {
- int var3 = this.tick[1].x - this.tick[0].x;
- if (var3 == 0) {
- return;
- }
-
- int var4 = (var1 - this.tick[0].x) / var3;
- if (var4 < 0) {
- var4 = 0;
- }
-
- if ((var1 - this.tick[0].x) % var3 > var3 / 2) {
- ++var4;
- }
-
- this.doMove(var4, var2);
- }
-
- }
- }
-